home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 626-637 / disk_632 / printfiles / source / prf_swd.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  14KB  |  442 lines

  1. /* prf_swd.c */
  2. /* V1.1 9-3-92 */
  3.  
  4. #include "prf.h"
  5.  
  6.  
  7. struct TextAttr topaz8 = {
  8.     ( STRPTR )"topaz.font", 8, 0x00, 0x01 };
  9.  
  10. struct TagItem    SwdTags[] = {
  11.     WA_Left,          10,
  12.     WA_Top,           15,
  13.     WA_Width,         338,
  14.     WA_Height,        180,
  15.     WA_IDCMP,         IDCMP_MOUSEBUTTONS|IDCMP_MOUSEMOVE|IDCMP_GADGETDOWN|IDCMP_GADGETUP|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
  16.     WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
  17.     WA_Gadgets,       0l,
  18.     WA_Title,         (ULONG)SWD_TITLE,
  19.     WA_ScreenTitle,   (ULONG)SCREEN_TITLE,
  20.     WA_MinWidth,      67,
  21.     WA_MinHeight,     21,
  22.     WA_MaxWidth,      640,
  23.     WA_MaxHeight,     256,
  24.     WA_AutoAdjust,    1l,
  25.     TAG_DONE };
  26.  
  27. long OpenSwd(struct prf_info *info)
  28. {
  29.     struct NewGadget     ng;
  30.     struct Gadget       *g;
  31.     if(info->Swd) return (1L);
  32.     if ( NOT( g = CreateContext( &info->SGlist ))) return( 0L );
  33.     ng.ng_LeftEdge        =    6;
  34.     ng.ng_TopEdge         =    info->BarHeight + 2;
  35.     ng.ng_Width           =    100;
  36.     ng.ng_Height          =    17;
  37.     ng.ng_GadgetText      =    GAD_PwdButton;
  38.     ng.ng_TextAttr        =    &topaz8;
  39.     ng.ng_GadgetID        =    GD_PwdButton;
  40.     ng.ng_Flags           =    PLACETEXT_IN;
  41.     ng.ng_VisualInfo      =    info->VisualInfo;
  42.  
  43.     g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  44.  
  45.     info->SGadgets[ 0 ] = g;
  46.  
  47.     ng.ng_LeftEdge        =    232;
  48.     ng.ng_GadgetText      =    GAD_About;
  49.     ng.ng_GadgetID        =    GD_About;
  50.  
  51.     g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  52.  
  53.     info->SGadgets[ 1 ] = g;
  54.  
  55.     ng.ng_LeftEdge        =    102;
  56.     ng.ng_TopEdge         =    info->BarHeight + 22;
  57.     ng.ng_Width           =    230;
  58.     ng.ng_Height          =    16;
  59.     ng.ng_GadgetText      =    GAD_Headline;
  60.     ng.ng_GadgetID        =    GD_Headline;
  61.     ng.ng_Flags           =    PLACETEXT_LEFT;
  62.  
  63.     g = CreateGadget( STRING_KIND, g, &ng, GTST_String,info->Headline,GTST_MaxChars, 256, GT_Underscore, '_', TAG_DONE );
  64.  
  65.     info->SGadgets[ 2 ] = g;
  66.  
  67.     ng.ng_TopEdge         =    info->BarHeight + 38;
  68.     ng.ng_GadgetText      =    GAD_Footline;
  69.     ng.ng_GadgetID        =    GD_Footline;
  70.  
  71.     g = CreateGadget( STRING_KIND, g, &ng, GTST_String,info->Footline,GTST_MaxChars, 256, GT_Underscore, '_', TAG_DONE );
  72.  
  73.     info->SGadgets[ 3 ] = g;
  74.  
  75.     ng.ng_LeftEdge        =    6;
  76.     ng.ng_TopEdge         =    info->BarHeight + 56;
  77.     ng.ng_GadgetText      =    GAD_Date;
  78.     ng.ng_GadgetID        =    GD_Date;
  79.     ng.ng_Flags           =    PLACETEXT_RIGHT;
  80.  
  81.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  82.  
  83.     info->SGadgets[ 4 ] = g;
  84.  
  85.     ng.ng_LeftEdge        =    102;
  86.     ng.ng_GadgetText      =    GAD_Time;
  87.     ng.ng_GadgetID        =    GD_Time;
  88.  
  89.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  90.  
  91.     info->SGadgets[ 5 ] = g;
  92.  
  93.     ng.ng_LeftEdge        =    175;
  94.     ng.ng_GadgetText      =    GAD_Filename;
  95.     ng.ng_GadgetID        =    GD_Filename;
  96.  
  97.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  98.  
  99.     info->SGadgets[ 6 ] = g;
  100.  
  101.     ng.ng_LeftEdge        =    6;
  102.     ng.ng_TopEdge         =    info->BarHeight + 70;
  103.     ng.ng_GadgetText      =    GAD_Pagenumber;
  104.     ng.ng_GadgetID        =    GD_Pagenumber;
  105.  
  106.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  107.  
  108.     info->SGadgets[ 7 ] = g;
  109.  
  110.     ng.ng_LeftEdge        =    175;
  111.     ng.ng_GadgetText      =    GAD_Linenumber;
  112.     ng.ng_GadgetID        =    GD_Linenumber;
  113.  
  114.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  115.  
  116.     info->SGadgets[ 8 ] = g;
  117.  
  118.     ng.ng_LeftEdge        =    6;
  119.     ng.ng_TopEdge         =    info->BarHeight + 82;
  120.     ng.ng_GadgetText      =    GAD_CRLF;
  121.     ng.ng_GadgetID        =    GD_CRLF;
  122.  
  123.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  124.  
  125.     info->SGadgets[ 9 ] = g;
  126.  
  127.     ng.ng_LeftEdge        =    175;
  128.     ng.ng_GadgetText      =    GAD_FF;
  129.     ng.ng_GadgetID        =    GD_FF;
  130.  
  131.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  132.  
  133.     info->SGadgets[ 10 ] = g;
  134.  
  135.     ng.ng_Width           =    323;
  136.     ng.ng_Height          =    15;
  137.     ng.ng_GadgetText      =    0l;
  138.     ng.ng_GadgetID        =    GD_Gadget11;
  139.     ng.ng_Flags           =    0;
  140.  
  141.     g = CreateGadget( STRING_KIND, g,&ng,GTST_String,info->Insertline, GTST_MaxChars, 256, TAG_DONE );
  142.  
  143.     info->SGadgets[ 11 ] = g;
  144.  
  145.     ng.ng_LeftEdge        =    6;
  146.     ng.ng_TopEdge         =    info->BarHeight + 94;
  147.     ng.ng_Height          =    48;
  148.     ng.ng_GadgetText      =    0l;
  149.     ng.ng_GadgetID        =    GD_List;
  150.  
  151.     g = CreateGadget( LISTVIEW_KIND, g, &ng,GTLV_Labels,&info->FileList, GTLV_ShowSelected, info->SGadgets[11], TAG_DONE );
  152.  
  153.     info->SGadgets[ 12 ] = g;
  154.  
  155.     ng.ng_LeftEdge        =    6;
  156.     ng.ng_TopEdge         =    info->BarHeight + 146;
  157.     ng.ng_Width           =    148;
  158.     ng.ng_Height          =    14;
  159.     ng.ng_GadgetText      =    GAD_Filereq;
  160.     ng.ng_GadgetID        =    GD_Filereq;
  161.     ng.ng_Flags           =    PLACETEXT_IN;
  162.  
  163.     g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  164.  
  165.     info->SGadgets[ 13 ] = g;
  166.  
  167.     ng.ng_LeftEdge        =    181;
  168.     ng.ng_GadgetText      =    GAD_Remove;
  169.     ng.ng_GadgetID        =    GD_Remove;
  170.  
  171.     g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  172.  
  173.     info->SGadgets[ 14 ] = g;
  174.  
  175.     ng.ng_LeftEdge        =    6;
  176.     ng.ng_TopEdge         =    info->BarHeight + 162;
  177.     ng.ng_GadgetText      =    GAD_Print;
  178.     ng.ng_GadgetID        =    GD_Print;
  179.  
  180.     g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  181.  
  182.     info->SGadgets[ 15 ] = g;
  183.  
  184.     ng.ng_LeftEdge        =    182;
  185.     ng.ng_GadgetText      =    GAD_quit;
  186.     ng.ng_GadgetID        =    GD_quit;
  187.  
  188.     g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  189.  
  190.     info->SGadgets[ 16 ] = g;
  191.  
  192.     if ( NOT g ) return(0L);
  193.  
  194.     SwdTags[ 6 ].ti_Data = (ULONG)info->SGlist;
  195.  
  196.     if ( NOT( info->Swd = OpenWindowTagList( 0l,SwdTags )))
  197.         return(0L);
  198.  
  199.     GT_RefreshWindow( info->Swd,0l);
  200.     SetPrfSignals(info);
  201.     RefreshSwd(info);
  202.     return( 1L );
  203. }
  204.  
  205. void CloseSwd(struct prf_info *info)
  206. {
  207.  if (info->Swd)
  208.  {
  209.   SwdTags[0].ti_Data = (ULONG)info->Swd->LeftEdge;
  210.   SwdTags[1].ti_Data = (ULONG)info->Swd->TopEdge;
  211.   CloseWindow(info->Swd);
  212.   info->Swd = NULL;
  213.  }
  214.  if(info->SGlist)
  215.  {
  216.   FreeGadgets(info->SGlist);
  217.   info->SGlist = NULL;
  218.  }
  219.  SetPrfSignals(info);
  220. }
  221.  
  222. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  223.  
  224.  
  225. UBYTE         *QualityLabels[] = {
  226.     GAD_Quality1,
  227.     GAD_Quality2,
  228.     0l };
  229.  
  230. UBYTE         *PitchLabels[] = {
  231.     GAD_Pitch1,
  232.     GAD_Pitch2,
  233.     0L};
  234.  
  235. UBYTE         *cpiLabels[] = {
  236.     GAD_CPI10,
  237.     GAD_CPI12,
  238.     GAD_CPI15,
  239.     0l };
  240.  
  241. struct TagItem    PwdTags[] = {
  242.     WA_Left,          261,
  243.     WA_Top,           11,
  244.     WA_Width,         368,
  245.     WA_Height,        100,
  246.     WA_IDCMP,         IDCMP_VANILLAKEY|IDCMP_GADGETDOWN|IDCMP_GADGETUP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  247.     WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
  248.     WA_Gadgets,       0l,
  249.     WA_Title,         (ULONG)PWD_TITLE,
  250.     WA_ScreenTitle,   (ULONG)SCREEN_TITLE,
  251.     WA_MinWidth,      67,
  252.     WA_MinHeight,     21,
  253.     WA_MaxWidth,      640,
  254.     WA_MaxHeight,     256,
  255.     WA_AutoAdjust,    1l,
  256.     TAG_DONE };
  257.  
  258.  
  259. long OpenPwd(struct prf_info *info)
  260. {
  261.     struct NewGadget     ng;
  262.     struct Gadget       *g;
  263.     if(info->Pwd) return (1L);
  264.  
  265.     if ( NOT( g = CreateContext( &info->PGlist )))
  266.         return(0L);
  267.     ng.ng_LeftEdge        =    19;
  268.     ng.ng_TopEdge         =    info->BarHeight + 2;
  269.     ng.ng_Width           =    17;
  270.     ng.ng_Height          =    9;
  271.     ng.ng_GadgetText      =    0l;
  272.     ng.ng_TextAttr        =    &topaz8;
  273.     ng.ng_GadgetID        =    GD_Quality;
  274.     ng.ng_Flags           =    PLACETEXT_RIGHT;
  275.     ng.ng_VisualInfo      =    info->VisualInfo;
  276.  
  277.     g = CreateGadget( MX_KIND, g, &ng, GTMX_Labels, QualityLabels, GT_Underscore, '_', TAG_DONE );
  278.  
  279.     info->PGadgets[ 0 ] = g;
  280.  
  281.     ng.ng_LeftEdge        =    187;
  282.     ng.ng_GadgetText      =    0l;
  283.     ng.ng_GadgetID        =    GD_Pitch;
  284.  
  285.     g = CreateGadget( MX_KIND, g, &ng, GTMX_Labels, PitchLabels, GT_Underscore, '_', TAG_DONE );
  286.  
  287.     info->PGadgets[ 1 ] = g;
  288.  
  289.     ng.ng_LeftEdge        =    20;
  290.     ng.ng_TopEdge         =    info->BarHeight + 22;
  291.     ng.ng_Width           =    54;
  292.     ng.ng_Height          =    15;
  293.     ng.ng_GadgetText      =    GAD_Linesperpage;
  294.     ng.ng_GadgetID        =    GD_Linesperpage;
  295.  
  296.     g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, info->Lines, GTIN_MaxChars, 3, TAG_DONE );
  297.  
  298.     info->PGadgets[ 2 ] = g;
  299.  
  300.     ng.ng_LeftEdge        =    188;
  301.     ng.ng_TopEdge         =    info->BarHeight + 22;
  302.     ng.ng_GadgetText      =    0l;
  303.     ng.ng_GadgetID        =    GD_cpi;
  304.  
  305.     g = CreateGadget( MX_KIND, g, &ng, GTMX_Labels, cpiLabels, GT_Underscore, '_', TAG_DONE );
  306.  
  307.     info->PGadgets[ 3 ] = g;
  308.  
  309.     ng.ng_LeftEdge        =    21;
  310.     ng.ng_TopEdge         =    info->BarHeight + 54;
  311.     ng.ng_Width           =    54;
  312.     ng.ng_Height          =    15;
  313.     ng.ng_GadgetText      =    GAD_Lmargin;
  314.     ng.ng_GadgetID        =    GD_Lmargin;
  315.  
  316.     g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, info->Lmargin, GTIN_MaxChars, 3, TAG_DONE );
  317.  
  318.     info->PGadgets[ 4 ] = g;
  319.  
  320.     ng.ng_LeftEdge        =    189;
  321.     ng.ng_TopEdge         =    info->BarHeight + 54;
  322.     ng.ng_GadgetText      =    GAD_Rmargin;
  323.     ng.ng_GadgetID        =    GD_Rmargin;
  324.  
  325.     g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, info->Rmargin, GTIN_MaxChars, 3, TAG_DONE );
  326.  
  327.     info->PGadgets[ 5 ] = g;
  328.  
  329.     ng.ng_LeftEdge        =    23;
  330.     ng.ng_TopEdge         =    info->BarHeight + 76;
  331.     ng.ng_Width           =    150;
  332.     ng.ng_Height          =    16;
  333.     ng.ng_GadgetText      =    GAD_Saveprefs;
  334.     ng.ng_GadgetID        =    GD_Saveprefs;
  335.     ng.ng_Flags           =    PLACETEXT_IN;
  336.  
  337.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  338.  
  339.     info->PGadgets[ 6 ] = g;
  340.  
  341.     ng.ng_LeftEdge        =    190;
  342.     ng.ng_TopEdge         =    info->BarHeight + 76;
  343.     ng.ng_GadgetText      =    GAD_PPrint;
  344.     ng.ng_GadgetID        =    GD_PPrint;
  345.  
  346.     g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore , '_',TAG_DONE );
  347.  
  348.     info->PGadgets[ 7 ] = g;
  349.  
  350.  
  351.     if ( NOT g )
  352.         return( 0L );
  353.  
  354.     PwdTags[ 6 ].ti_Data = (ULONG)info->PGlist;
  355.  
  356.     if ( NOT( info->Pwd = OpenWindowTagList( 0l, PwdTags )))
  357.         return( 0L );
  358.  
  359.     GT_RefreshWindow( info->Pwd, 0l );
  360.     SetPrfSignals(info);
  361.     RefreshPwd(info);
  362.     return(1L);
  363. }
  364.  
  365. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  366. void ClosePwd(struct prf_info *info)
  367. {
  368.  if (info->Pwd)
  369.  {
  370.   PwdTags[0].ti_Data = (ULONG)info->Pwd->LeftEdge;
  371.   PwdTags[1].ti_Data = (ULONG)info->Pwd->TopEdge;
  372.   CloseWindow(info->Pwd);
  373.   info->Pwd = NULL;
  374.  }
  375.  if(info->PGlist)
  376.  {
  377.   FreeGadgets(info->PGlist);
  378.   info->PGlist = NULL;
  379.  }
  380.  SetPrfSignals(info);
  381. }
  382.  
  383. void RefreshPwd(struct prf_info *info)
  384. {
  385.  if(info->Pwd)
  386.  {
  387.   DoCommand(info,info->flags & FLAG_DRAFT ? CMD_DRAFT :
  388.                  info->flags & FLAG_LQ    ? CMD_LQ    : CMD_NEUTRAL);
  389.   DoCommand(info,info->flags & FLAG_PITCH6 ? CMD_PITCH6 :
  390.                  info->flags & FLAG_PITCH8 ? CMD_PITCH8 : CMD_NEUTRAL);
  391.   DoCommand(info,info->flags & FLAG_10CPI ? CMD_10CPI :
  392.                 info->flags & FLAG_12CPI ? CMD_12CPI :
  393.                  info->flags & FLAG_15CPI ? CMD_15CPI : CMD_NEUTRAL);
  394.   GT_SetGadgetAttrs(info->PGadgets[GD_Rmargin - PGD],info->Pwd,NULL,GTIN_Number,info->Rmargin,TAG_DONE);
  395.   GT_SetGadgetAttrs(info->PGadgets[GD_Lmargin - PGD],info->Pwd,NULL,GTIN_Number,info->Lmargin,TAG_DONE);
  396.   GT_SetGadgetAttrs(info->PGadgets[GD_Linesperpage - PGD],info->Pwd,NULL,GTIN_Number,info->Lines,TAG_DONE);
  397.   if(info->flags & FLAG_PRINT)
  398.    GT_SetGadgetAttrs(info->PGadgets[GD_PPrint - PGD],info->Pwd,NULL,GA_Disabled,TRUE,TAG_DONE);
  399.  }
  400. }
  401.  
  402. void RefreshSwd(struct prf_info *info)
  403. {
  404.  if(info->Swd)
  405.  {
  406.   GT_SetGadgetAttrs(info->SGadgets[GD_Headline],info->Swd,NULL,GTST_String,info->Headline,TAG_DONE);
  407.   GT_SetGadgetAttrs(info->SGadgets[GD_Footline],info->Swd,NULL,GTST_String,info->Footline,TAG_DONE);
  408.   if(info->flags & FLAG_PAGE)
  409.    GT_SetGadgetAttrs(info->SGadgets[GD_Pagenumber],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  410.   else
  411.    GT_SetGadgetAttrs(info->SGadgets[GD_Pagenumber],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  412.   if(info->flags & FLAG_LINE)
  413.    GT_SetGadgetAttrs(info->SGadgets[GD_Linenumber],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  414.   else
  415.    GT_SetGadgetAttrs(info->SGadgets[GD_Linenumber],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  416.   if(info->flags & FLAG_CRLF)
  417.    GT_SetGadgetAttrs(info->SGadgets[GD_CRLF],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  418.   else
  419.    GT_SetGadgetAttrs(info->SGadgets[GD_CRLF],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  420.   if(info->flags & FLAG_FF)
  421.    GT_SetGadgetAttrs(info->SGadgets[GD_FF],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  422.   else
  423.    GT_SetGadgetAttrs(info->SGadgets[GD_FF],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  424.   if(info->flags & FLAG_DATE)
  425.    GT_SetGadgetAttrs(info->SGadgets[GD_Date],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  426.   else
  427.    GT_SetGadgetAttrs(info->SGadgets[GD_Date],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  428.   if(info->flags & FLAG_TIME)
  429.    GT_SetGadgetAttrs(info->SGadgets[GD_Time],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  430.   else
  431.    GT_SetGadgetAttrs(info->SGadgets[GD_Time],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  432.   if(info->flags & FLAG_FILE)
  433.    GT_SetGadgetAttrs(info->SGadgets[GD_Filename],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  434.   else
  435.    GT_SetGadgetAttrs(info->SGadgets[GD_Filename],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  436.   if(info->flags & FLAG_PRINT)
  437.    GT_SetGadgetAttrs(info->SGadgets[GD_Print],info->Swd,NULL,GA_Disabled,TRUE,TAG_DONE);
  438.   AttachList(info);
  439.  }
  440. }
  441.  
  442.